Awesome Java
      
    
    A curated list of awesome Java frameworks, libraries and software.
    Contents
    
    Projects
    Bean Mapping
    Frameworks that ease bean mapping.
    
      - 
        dOOv - Provides fluent API
        for typesafe domain model validation and mapping. It uses annotations,
        code generation and a type safe DSL to make bean validation and mapping
        fast and easy.
      
 
      - 
        JMapper
        - Uses byte code manipulation for lightning-fast mapping. Supports
        annotations and API or XML configuration.
      
 
      - 
        MapStruct - Code
        generator that simplifies mappings between different bean types, based
        on a convention-over-configuration approach.
      
 
      - 
        ModelMapper -
        Intelligent object mapping library that automatically maps objects to
        each other.
      
 
      - 
        Orika -
        JavaBean-mapping framework that recursively copies (among other
        capabilities) data from one object to another.
      
 
      - 
        reMap - Lambda and
        method handle-based mapping which requires code and not annotations if
        objects have different names.
      
 
      - 
        Selma - Annotation
        processor-based bean mapper.
      
 
    
    Build
    
      Tools that handle the build cycle and dependencies of an
        application.
    
    
      - 
        Apache Maven - Declarative build
        and dependency management that favors convention over configuration. It
        might be preferable to Apache Ant, which uses a rather procedural
        approach and can be difficult to maintain.
      
 
      - 
        Bazel - Tool from Google that builds
        code quickly and reliably.
      
 
      - 
        Buck - Encourages the
        creation of small, reusable modules consisting of code and resources.
      
 
      - 
        Gradle - Incremental builds programmed
        via Groovy instead of declaring XML. Works well with Maven’s dependency
        management.
      
 
    
    Bytecode Manipulation
    Libraries to manipulate bytecode programmatically.
    
      - 
        ASM - All-purpose, low-level bytecode
        manipulation and analysis.
      
 
      - 
        Byte Buddy - Further simplifies
        bytecode generation with a fluent API.
      
 
      - 
        bytecode-viewer
        - Java 8 Jar & Android APK reverse engineering suite. (GPL-3.0-only)
      
 
      - 
        Byteman - Manipulate bytecode at
        runtime via DSL (rules); mainly for testing/troubleshooting.
        (LGPL-2.1-or-later)
      
 
      - 
        cglib - Bytecode generation
        library.
      
 
      - 
        Javassist -
        Tries to simplify bytecode editing.
      
 
      - 
        Mixin - Manipulate
        bytecode at runtime using real Java code.
      
 
      - 
        Perses -
        Dynamically injects failure/latency at the bytecode level according to
        principles of chaos engineering.
      
 
    
    Caching
    Libraries that provide caching facilities.
    
      - 
        cache2k - In-memory high performance
        caching library.
      
 
      - 
        Caffeine -
        High-performance, near-optimal caching library.
      
 
      - 
        Ehcache - Distributed
        general-purpose cache.
      
 
      - 
        Infinispan - Highly concurrent
        key/value datastore used for caching.
      
 
    
    CLI
    Libraries for everything related to the CLI.
    
      - 
        ASCII Table - Library
        to draw tables in ASCII.
      
 
      - 
        Airline -
        Annotation-based framework for parsing Git-like command-line arguments.
      
 
      - 
        args4j - Small library to parse
        command-line arguments.
      
 
      - 
        Jansi - ANSI escape
        codes to format console output.
      
 
      - 
        Java ASCII Render
        - Graphical primitives for the console.
      
 
      - 
        JCommander - Command-line
        argument-parsing framework with custom types and validation via
        implementing interfaces.
      
 
      - 
        jbock - Reflectionless
        command line parser.
      
 
      - 
        Jexer - Advanced console
        (and Swing) text user interface (TUI) library, with mouse-draggable
        windows, built-in terminal window manager, and sixel image support.
        Looks like
        Turbo Vision.
      
 
      - 
        JLine - Includes features
        from modern shells like completion or history.
      
 
      - 
        JOpt Simple -
        Fluent parser that uses the POSIX#getopt and GNU#getopt_long syntaxes.
      
 
      - 
        picocli - ANSI colors and styles in
        usage help with annotation-based POSIX/GNU/any syntax, subcommands,
        strong typing for both options and positional args.
      
 
      - 
        Text-IO - Aids the
        creation of full console-based applications.
      
 
      - 
        Lanterna - Easy console
        text-GUI library, similar to curses. (LGPL-3.0-only)
      
 
    
    Cluster Management
    
      Frameworks that can dynamically manage applications inside of a
        cluster.
    
    
      - 
        Apache Aurora - Mesos framework
        for long-running services and cron jobs.
      
 
      - 
        Singularity - Mesos framework
        that makes deployment and operations easy. It supports web services,
        background workers, scheduled jobs, and one-off tasks.
      
 
    
    Code Analysis
    Tools that provide metrics and quality measurements.
    
      - 
        Checkstyle -
        Static analysis of coding conventions and standards. (LGPL-2.1-or-later)
      
 
      - 
        Error Prone -
        Catches common programming mistakes as compile-time errors.
      
 
      - 
        Infer - Modern static
        analysis tool for verifying the correctness of code.
      
 
      - 
        jQAssistant - Static code analysis
        with Neo4J-based query language. (GPL-3.0-only)
      
 
      - 
        NullAway - Eliminates
        NullPointerExceptions with low build-time overhead.
      
 
      - 
        PMD - Source code analysis for
        finding bad coding practices.
      
 
      - 
        SonarJava -
        Static analyzer for SonarQube & SonarLint. (LGPL-3.0-only)
      
 
      - 
        Sourcetrail - Visual source
        code navigator.
      
 
      - 
        Spoon - Library for
        analyzing and transforming Java source code.
      
 
      - 
        Spotbugs - Static
        analysis of bytecode to find potential bugs. (LGPL-2.1-only)
      
 
    
    Code Coverage
    
      Frameworks and tools that enable code coverage metrics collection for
        test suites.
    
    
      - 
        Clover - Relies
        on source-code instrumentation instead of bytecode instrumentation.
      
 
      - 
        Cobertura - Relies
        on offline (or static) bytecode instrumentation and class loading to
        collect code coverage metrics. (GPL-2.0-only)
      
 
      - 
        JaCoCo - Framework that
        enables collection of code coverage metrics, using both offline and
        runtime bytecode instrumentation.
      
 
    
    Code Generators
    
      Tools that generate patterns for repetitive code in order to reduce
        verbosity and error-proneness.
    
    
      - 
        ADT4J - JSR-269 code
        generator for algebraic data types.
      
 
      - 
        Auto - Generates factory,
        service, and value classes.
      
 
      - 
        Bootify
          
        - Browser-based Spring Boot app generation with JPA model and REST API.
       
      - 
        FreeBuilder -
        Automatically generates the Builder pattern.
      
 
      - 
        Immutables - Annotation
        processors to generate simple, safe and consistent value objects.
      
 
      - 
        JavaPoet - API to
        generate source files.
      
 
      - 
        JHipster -
        Yeoman source code generator for Spring Boot and AngularJS.
      
 
      - 
        Joda-Beans - Small
        framework that adds queryable properties to Java, enhancing JavaBeans.
      
 
      - 
        Lombok - Code generator that
        aims to reduce verbosity.
      
 
      - 
        Telosys - Simple and light code
        generator available as an Eclipse Plugin and also as a CLI.
      
 
    
    Compiler-compiler
    
      Frameworks that help to create parsers, interpreters or compilers.
    
    
      - 
        ANTLR - Complex full-featured
        framework for top-down parsing.
      
 
      - 
        JavaCC - Parser generator
        that generates top-down parsers. Allows lexical state switching and
        permits extended BNF specifications.
      
 
      - 
        JFlex - Lexical analyzer generator.
      
 
    
    Computer Vision
    
      Libraries which seek to gain high level information from images and
        videos.
    
    
      - 
        BoofCV - Library for image processing,
        camera calibration, tracking, SFM, MVS, 3D vision, QR Code and much
        more.
      
 
      - 
        ImageJ - Medical image
        processing application with an API.
      
 
      - 
        JavaCV - Java interface
        to OpenCV, FFmpeg, and much more.
      
 
    
    Configuration
    Libraries that provide external configuration.
    
      - 
        centraldogma -
        Highly-available version-controlled service configuration repository
        based on Git, ZooKeeper and HTTP/2.
      
 
      - 
        cfg4j - Modern
        configuration library for distributed apps written in Java.
      
 
      - 
        config - Configuration
        library supporting Java properties, JSON or its human optimized superset
        HOCON.
      
 
      - 
        Configurate -
        Configuration library with support for various configuration formats and
        transformations.
      
 
      - 
        dotenv - Twelve-factor
        configuration library which uses environment-specific files.
      
 
      - 
        ini4j - Provides an API for
        handling Windows’ INI files.
      
 
      - 
        KAConf -
        Annotation-based configuration system for Java and Kotlin.
      
 
      - 
        microconfig - Configuration system
        designed for microservices which helps to separate configuration from
        code. The configuration for different services can have common and
        specific parts and can be dynamically distributed.
      
 
      - 
        owner - Reduces
        boilerplate of properties.
      
 
    
    
      Constraint Satisfaction Problem Solver
    
    
      Libraries that help with implementing optimization and satisfiability
        problems.
    
    
      - 
        Choco - Off-the-shelf constraint
        satisfaction problem solver that uses constraint programming techniques.
      
 
      - 
        JaCoP - Includes an
        interface for the FlatZinc language, enabling it to execute MiniZinc
        models. (AGPL-3.0)
      
 
      - 
        OptaPlanner - Business
        planning and resource scheduling optimization solver.
      
 
    
    CSV
    
      Frameworks and libraries that simplify reading/writing CSV data.
    
    
      - 
        FastCSV -
        Performance-optimized, dependency-free and RFC 4180 compliant.
      
 
      - 
        jackson-dataformat-csv
        - Jackson extension for reading and writing CSV.
      
 
      - 
        opencsv - Simple CSV
        parser.
      
 
      - 
        Super CSV -
        Powerful CSV parser with support for Dozer, Joda-Time and Java 8.
      
 
      - 
        uniVocity-parsers
        - One of the fastest and most feature-complete parsers. Also comes with
        parsers for TSV and fixed-width records.
      
 
    
    Data Structures
    Efficient and specific data structures.
    
      - 
        Apache Avro - Data interchange
        format with dynamic typing, untagged data, and absence of manually
        assigned IDs.
      
 
      - 
        Apache Orc - Fast and efficient
        columnar storage format for Hadoop-based workloads.
      
 
      - 
        Apache Parquet - Columnar
        storage format based on assembly algorithms from Google’s paper on
        Dremel.
      
 
      - 
        Apache Thrift - Data interchange
        format that originated at Facebook.
      
 
      - 
        Big Queue - Fast
        and persistent queue based on memory-mapped files.
      
 
      - 
        HyperMinHash-java
        - Probabilistic data structure for computing union, intersection, and
        set cardinality in loglog space.
      
 
      - 
        Persistent Collection
        - Persistent and immutable analogue of the Java Collections Framework.
      
 
      - 
        Protobuf -
        Google’s data interchange format.
      
 
      - 
        RoaringBitmap
        - Fast and efficient compressed bitmap.
      
 
      - 
        SBE -
        Simple Binary Encoding, one of the fastest message formats around.
      
 
      - 
        Tape - Lightning-fast,
        transactional, file-based FIFO.
      
 
      - 
        Wire - Clean, lightweight
        protocol buffers.
      
 
    
    Database
    Everything that simplifies interactions with the database.
    
      - 
        Apache Calcite - Dynamic data
        management framework. It contains many of the pieces that comprise a
        typical database management system.
      
 
      - 
        Apache Drill - Distributed,
        schema on-the-fly, ANSI SQL query engine for Big Data exploration.
      
 
      - 
        Apache Phoenix -
        High-performance relational database layer over HBase for low-latency
        applications.
      
 
      - 
        AranoDB -
        ArangoDB Java driver.
      
 
      - 
        Chronicle Map -
        Efficient, in-memory (opt. persisted to disk), off-heap key-value store.
      
 
      - 
        Debezium - Low latency data streaming
        platform for change data capture.
      
 
      - 
        druid - High-performance,
        column-oriented, distributed data store.
      
 
      - 
        eXist - NoSQL document
        database and application platform. (LGPL-2.1-only)
      
 
      - 
        FlexyPool -
        Brings metrics and failover strategies to the most common connection
        pooling solutions.
      
 
      - 
        Flyway - Simple database migration
        tool.
      
 
      - 
        H2 - Small SQL database notable for
        its in-memory functionality.
      
 
      - 
        HikariCP -
        High-performance JDBC connection pool.
      
 
      - 
        JDBI - Convenient abstraction of JDBC.
      
 
      - 
        Jedis - Small client
        for interaction with Redis, with methods for commands.
      
 
      - 
        Jest - Client for the
        Elasticsearch REST API.
      
 
      - 
        jetcd - Client library
        for etcd.
      
 
      - 
        Jinq - Typesafe database
        queries via symbolic execution of Java 8 Lambdas (on top of JPA or
        jOOQ).
      
 
      - 
        jOOQ - Generates typesafe code based
        on SQL schema.
      
 
      - 
        Leaf -
        Distributed ID generate service.
      
 
      - 
        Liquibase - Database-independent
        library for tracking, managing and applying database schema changes.
      
 
      - 
        MapDB - Embedded database engine that
        provides concurrent collections backed on disk or in off-heap memory.
      
 
      - 
        MariaDB4j -
        Launcher for MariaDB that requires no installation or external
        dependencies.
      
 
      - 
        Modality -
        Lightweight ORM with database reverse engineering features.
      
 
      - 
        Spring Data JPA MongoDB Expressions
        - Allows you to use MongoDB query language to query your relational
        database.
      
 
      - 
        Trino - Distributed SQL query engine for
        big data.
      
 
      - 
        QueryStream -
        Build JPA Criteria queries using a Stream-like API.
      
 
      - 
        Querydsl - Typesafe unified
        queries.
      
 
      - 
        Realm - Mobile
        database to run directly inside phones, tablets or wearables.
      
 
      - 
        Redisson - Allows for
        distributed and scalable data structures on top of a Redis server.
      
 
      - 
        requery - Modern,
        lightweight but powerful object mapping and SQL generator. Easily map to
        or create databases, or perform queries and updates from any Java-using
        platform.
      
 
      - 
        Speedment -
        Database access library that utilizes Java 8’s Stream API for querying.
      
 
      - 
        Vibur DBCP - JDBC connection pool
        library with advanced performance monitoring capabilities.
      
 
      - 
        Xodus - Highly
        concurrent transactional schema-less and ACID-compliant embedded
        database.
      
 
    
    Date and Time
    Libraries related to handling date and time.
    
      - 
        Almanac Converter
        - Simple conversion between different calendar systems.
      
 
      - 
        iCal4j - Parse and build
        iCalendar
        RFC 5545 data models.
      
 
      - 
        ThreeTen-Extra
        - Additional date-time classes that complement those in JDK 8.
      
 
      - 
        Time4J - Advanced date
        and time library. (LGPL-2.1-only)
      
 
    
    Dependency Injection
    
      Libraries that help to realize the
        Inversion of Control
        paradigm.
    
    
      - 
        Apache DeltaSpike - CDI
        extension framework.
      
 
      - 
        Dagger - Compile-time injection
        framework without reflection.
      
 
      - 
        Feather -
        Ultra-lightweight, JSR-330-compliant dependency injection library.
      
 
      - 
        Governator -
        Extensions and utilities that enhance Google Guice.
      
 
      - 
        Guice - Lightweight and
        opinionated framework that completes Dagger.
      
 
      - 
        HK2 - Lightweight and
        dynamic dependency injection framework.
      
 
      - 
        JayWire -
        Lightweight dependency injection framework. (LGPL-3.0-only)
      
 
    
    Development
    
      Augmentation of the development process at a fundamental level.
    
    
      - 
        AspectJ - Seamless
        aspect-oriented programming extension.
      
 
      - 
        DCEVM - JVM modification that
        allows unlimited redefinition of loaded classes at runtime.
        (GPL-2.0-only)
      
 
      - 
        Faux Pas - Library
        that simplifies error handling by circumventing the issue that none of
        the functional interfaces in the Java Runtime is allowed by default to
        throw checked exceptions.
      
 
      - 
        HotswapAgent
        - Unlimited runtime class and resource redefinition. (GPL-2.0-only)
      
 
      - 
        JavaParser -
        Parse, modify and generate Java code.
      
 
      - 
        JavaSymbolSolver
        - Symbol solver.
      
 
      - 
        Manifold -
        Re-energizes Java with powerful features like type-safe metaprogramming,
        structural typing and extension methods.
      
 
      - 
        NoException - Allows
        checked exceptions in functional interfaces and converts exceptions to
        Optional return.
      
 
      - 
        SneakyThrow
        - Ignores checked exceptions without bytecode manipulation. Can also be
        used inside Java 8 stream operations.
      
 
      - 
        Tail - Enable infinite
        recursion using tail call optimization.
      
 
    
    Distributed Applications
    
      Libraries and frameworks for writing distributed and fault-tolerant
        applications.
    
    
      - 
        Apache Geode - In-memory data
        management system that provides reliable asynchronous event
        notifications and guaranteed message delivery.
      
 
      - 
        Apache Storm - Realtime
        computation system.
      
 
      - 
        Apache ZooKeeper -
        Coordination service with distributed configuration, synchronization,
        and naming registry for large distributed systems.
      
 
      - 
        Atomix - Fault-tolerant distributed
        coordination framework.
      
 
      - 
        Axon - Framework for creating CQRS
        applications.
      
 
      - 
        Dropwizard Circuit Breaker
        - Circuit breaker design pattern for Dropwizard. (GPL-2.0-only)
      
 
      - 
        Failsafe - Simple
        failure handling with retries and circuit breakers.
      
 
      - 
        Hazelcast - Highly
        scalable in-memory datagrid with a free open-source version.
      
 
      - 
        JGroups - Toolkit for reliable
        messaging and cluster creation.
      
 
      - 
        Quasar -
        Lightweight threads and actors for the JVM.
      
 
      - 
        resilience4j
        - Functional fault tolerance library.
      
 
      - 
        ScaleCube Services
        - Embeddable Cluster-Membership library based on SWIM and gossip
        protocol.
      
 
      - 
        Zuul - Gateway service
        that provides dynamic routing, monitoring, resiliency, security, and
        more.
      
 
    
    Distributed Transactions
    
      Distributed transactions provide a mechanism for ensuring consistency
        of data updates in the presence of concurrent access and partial
        failures.
    
    
      - 
        Atomikos - Provides transactions
        for REST, SOA and microservices with support for JTA and XA.
      
 
      - 
        Bitronix - Simple but
        complete implementation of the JTA 1.1 API.
      
 
      - 
        Narayana - Provides support for
        traditional ACID and compensation transactions, also complies with JTA,
        JTS and other standards. (LGPL-2.1-only)
      
 
      - 
        Seata - Delivers high
        performance and easy to use distributed transaction services under a
        microservices architecture.
      
 
    
    Distribution
    
      Tools that handle the distribution of applications in native
        formats.
    
    
      - 
        Artipie - Binary
        artifact management toolkit which hosts them on the file system or S3.
      
 
      - 
        Boxfuse
          
        - Deployment of JVM applications to AWS using the principles of
        immutable infrastructure.
       
      - 
        Capsule - Simple and
        powerful packaging and deployment. A fat JAR on steroids, or a “Docker
        for Java” that supports JVM-optimized containers.
      
 
      - 
        Central Repository - Largest
        binary component repository available as a free service to the
        open-source community. Default used by Apache Maven, and available in
        all other build tools.
      
 
      - 
        Cloudsmith
          
        - Fully managed package management SaaS with support for
        Maven/Gradle/SBT with a free tier.
       
      - 
        Getdown - A system
        for deploying Java applications to end-user computers and keeping them
        up to date. Developed as an alternative to Java Web Start.
      
 
      - 
        IzPack - Setup authoring tool for
        cross-platform deployments.
      
 
      - 
        JavaPackager -
        Maven and Gradle plugin which provides an easy way to package Java
        applications in native Windows, Mac OS X or GNU/Linux executables, and
        generate installers for them.
      
 
      - 
        jlink.online -
        Builds optimized runtimes over HTTP.
      
 
      - 
        Nexus
          
        - Binary management with proxy and caching capabilities.
       
      - 
        packr - Packs JARs, assets
        and the JVM for native distribution on Windows, Linux and macOS.
      
 
      - 
        really-executable-jars-maven-plugin
        - Maven plugin for making self-executing JARs.
      
 
    
    Document Processing
    
      Libraries that assist with processing office document formats.
    
    
      - 
        Apache POI - Supports OOXML (XLSX,
        DOCX, PPTX) as well as OLE2 (XLS, DOC or PPT).
      
 
      - 
        documents4j - API for document
        format conversion using third-party converters such as MS Word.
      
 
      - 
        docx4j - Create and
        manipulate Microsoft Open XML files.
      
 
      - 
        fastexcel - High
        performance library to read and write large Excel (XLSX) worksheets.
      
 
      - 
        zerocell -
        Annotation-based API for reading data from Excel sheets into POJOs with
        focus on reduced overhead.
      
 
    
    Financial
    Libraries related to the financial domain.
    
      - 
        Parity - Platform
        for trading venues.
      
 
      - 
        Philadelphia
        - Low-latency financial information exchange.
      
 
      - 
        Square -
        Integration with the Square API.
      
 
      - 
        Stripe - Integration
        with the Stripe API.
      
 
      - 
        ta4j - Library for technical
        analysis.
      
 
    
    
    
      Formal-methods tools: proof assistants, model checking, symbolic
        execution, etc.
    
    
      - 
        CATG - Concolic unit
        testing engine. Automatically generates unit tests using formal methods.
      
 
      - 
        Checker Framework - Pluggable
        type systems. Includes nullness types, physical units, immutability
        types and more. (GPL-2.0-only WITH Classpath-exception-2.0)
      
 
      - 
        Daikon - Detects
        likely program invariants and generates JML specs based on those
        invariants.
      
 
      - 
        Java Path Finder (JPF)
        - JVM formal verification tool containing a model checker and more.
        Created by NASA.
      
 
      - 
        JMLOK 2.0
        - Detects inconsistencies between code and JML specification through
        feedback-directed random tests generation, and suggests a likely cause
        for each nonconformance detected. (GPL-3.0-only)
      
 
      - 
        KeY - Formal software
        development tool that aims to integrate design, implementation, formal
        specification, and formal verification of object-oriented software as
        seamlessly as possible. Uses JML for specification and symbolic
        execution for verification. (GPL-2.0-or-later)
      
 
      - 
        OpenJML - Translates JML
        specifications into SMT-LIB format and passes the proof problems implied
        by the program to backend solvers. (GPL-2.0-only)
      
 
    
    Functional Programming
    Libraries that facilitate functional programming.
    
      - 
        Cyclops - Monad and stream
        utilities, comprehensions, pattern matching, functional extensions for
        all JDK collections, future streams, trampolines and much more.
      
 
      - 
        derive4j - Java 8
        annotation processor and framework for deriving algebraic data types
        constructors, pattern-matching and morphisms. (GPL-3.0-only)
      
 
      - 
        Fugue - Functional
        extensions to Guava.
      
 
      - 
        Functional Java - Implements
        numerous basic and advanced programming abstractions that assist
        composition-oriented development.
      
 
      - 
        jOOλ - Extension to Java 8
        that aims to fix gaps in lambda by providing numerous missing types and
        a rich set of sequential Stream API additions.
      
 
      - 
        protonpack -
        Collection of stream utilities.
      
 
      - 
        StreamEx - Enhances
        Java 8 Streams.
      
 
      - 
        Vavr - Functional component library
        that provides persistent data types and functional control structures.
      
 
    
    Game Development
    Frameworks that support the development of games.
    
      - 
        FXGL - JavaFX Game
        Development Framework.
      
 
      - 
        JBox2D - Port of the renowned C++
        2D physics engine.
      
 
      - 
        jMonkeyEngine - Game engine for
        modern 3D development.
      
 
      - 
        libGDX - All-round cross-platform,
        high-level framework.
      
 
      - 
        Litiengine - AWT-based,
        lightweight 2D game engine.
      
 
      - 
        LWJGL - Robust framework that
        abstracts libraries like OpenGL/CL/AL.
      
 
      - 
        Mini2Dx - Beginner-friendly,
        master-ready framework for rapidly prototyping and building 2D games.
      
 
    
    Geospatial
    Libraries for working with geospatial data and algorithms.
    
      - 
        Apache SIS - Library for developing
        geospatial applications.
      
 
      - 
        Geo - GeoHash utilities
        in Java.
      
 
      - 
        GeoTools - Library that provides
        tools for geospatial data. (LGPL-2.1-only)
      
 
      - 
        GraphHopper -
        Road-routing engine. Used as a Java library or standalone web service.
      
 
      - 
        H2GIS - Spatial extension of the H2
        database. (LGPL-3.0-only)
      
 
      - 
        Jgeohash - Library
        for using the GeoHash algorithm.
      
 
      - 
        Mapsforge - Map
        rendering based on OpenStreetMap data. (LGPL-3.0-only)
      
 
      - 
        Spatial4j -
        General-purpose spatial/geospatial library.
      
 
    
    GUI
    Libraries to create modern graphical user interfaces.
    
      - 
        JavaFX
        - Successor of Swing.
      
 
      - 
        Scene Builder
        - Visual layout tool for JavaFX applications.
      
 
      - 
        SWT - Graphical widget
        toolkit.
      
 
    
    
    
      Everything about high-performance computation, from collections to
        specific libraries.
    
    
      - 
        Agrona - Data
        structures and utility methods that are common in high-performance
        applications.
      
 
      - 
        Disruptor -
        Inter-thread messaging library.
      
 
      - 
        Eclipse Collections
        - Collections framework inspired by Smalltalk.
      
 
      - 
        fastutil - Fast and compact
        type-specific collections.
      
 
      - 
        HPPC - Primitive
        collections.
      
 
      - 
        JCTools - Concurrency
        tools currently missing from the JDK.
      
 
      - 
        Koloboke - Carefully
        designed extension of the Java Collections Framework with primitive
        specializations and more.
      
 
    
    HTTP Clients
    
      Libraries that assist with creating HTTP requests and/or binding
        responses.
    
    
      - 
        Apache HttpComponents - A toolset
        of low level Java components focused on HTTP and associated protocols.
      
 
      - 
        Async Http Client
        - Asynchronous HTTP and WebSocket client library.
      
 
      - 
        Feign - HTTP client
        binder inspired by Retrofit, JAXRS-2.0, and WebSocket.
      
 
      - 
        Google HTTP Client
        - Pluggable HTTP transport abstraction with support for
        java.net.HttpURLConnection, Apache HTTP Client, Android, Google App
        Engine, XML, Gson, Jackson and Protobuf.
      
 
      - 
        methanol - HTTP
        client extensions library.
      
 
      - 
        restQL-java -
        Microservice query language that fetches information from multiple
        services.
      
 
      - 
        Retrofit - Typesafe
        REST client.
      
 
      - 
        Ribbon - Client-side IPC
        library that is battle-tested in cloud.
      
 
      - 
        Riptide - Client-side
        response routing for Spring’s RestTemplate.
      
 
      - 
        unirest-java -
        Simplified, lightweight HTTP client library.
      
 
    
    
    Libraries that handle serialization to hypermedia types.
    
      - 
        hate - Builds
        hypermedia-friendly objects according to HAL specification.
      
 
      - 
        JSON-LD -
        JSON-LD implementation.
      
 
      - 
        Siren4J -
        Library for the Siren specification.
      
 
    
    IDE
    
      Integrated development environments that try to simplify several
        aspects of development.
    
    
      - 
        Eclipse - Established open-source
        project with support for lots of plugins and languages.
      
 
      - 
        IntelliJ IDEA
          
        - Supports many JVM languages and provides good options for Android
        development. The commercial edition targets the enterprise sector.
       
      - 
        jGRASP - Created to provide
        software visualizations that work in conjunction with the debugger such
        as Control Structure Diagrams, UML class diagrams and Object Viewer.
      
 
      - 
        NetBeans - Provides
        integration for several Java SE and EE features, from database access to
        HTML5.
      
 
      - 
        Recaf - Bytecode editor.
      
 
      - 
        Visual Studio Code
        - Provides Java support for lightweight projects with a simple, modern
        workflow by using extensions from the internal marketplace.
      
 
    
    Imagery
    
      Libraries that assist with the creation, evaluation or manipulation of
        graphical images.
    
    
      - 
        Imgscalr - Simple,
        efficient and hardware-accelerated image-scaling library implemented in
        pure Java 2D.
      
 
      - 
        Tess4J - JNA wrapper for
        Tesseract OCR API.
      
 
      - 
        Thumbnailator -
        High-quality thumbnail generation library.
      
 
      - 
        TwelveMonkeys -
        Collection of plugins that extend the number of supported image file
        formats.
      
 
      - 
        ZXing - Multi-format 1D/2D
        barcode image processing library.
      
 
      - 
        image-comparison
        - Library that compares 2 images with the same sizes and shows the
        differences visually by drawing rectangles. Some parts of the image can
        be excluded from the comparison. Can be used for automation qa tests.
      
 
    
    Introspection
    
      Libraries that help make the Java introspection and reflection API
        easier and faster to use.
    
    
      - 
        ClassGraph -
        ClassGraph (formerly FastClasspathScanner) is an uber-fast,
        ultra-lightweight, parallelized classpath scanner and module scanner for
        Java, Scala, Kotlin and other JVM languages.
      
 
      - 
        jOOR - jOOR stands for jOOR
        Object Oriented Reflection. It is a simple wrapper for the
        java.lang.reflect package.
      
 
      - 
        Mirror -
        Mirror was created to bring light to a simple problem, usually named
        ReflectionUtil, which is on almost all projects that rely on reflection
        to do advanced tasks.
      
 
      - 
        Objenesis - Allows dynamic
        instantiation without default constructor, e.g. constructors which have
        required arguments, side effects or throw exceptions.
      
 
      - 
        ReflectASM
        - ReflectASM is a very small Java library that provides high performance
        reflection by using code generation.
      
 
      - 
        Reflections -
        Reflections scans your classpath, indexes the metadata, allows you to
        query it on runtime and may save and collect that information for many
        modules within your project.
      
 
    
    Job Scheduling
    Libraries for scheduling background jobs.
    
      - 
        JobRunr - Job
        scheduling library which utilizes lambdas for fire-and-forget, delayed
        and recurring jobs. Guarantees execution by single scheduler instance
        using optimistic locking. Has features for persistence, minimal
        dependencies and is embeddable.
      
 
      - 
        Quartz -
        Feature-rich, open source job scheduling library that can be integrated
        within virtually any Java application.
      
 
      - 
        Sundial - Lightweight
        framework to simply define jobs, define triggers and start the
        scheduler.
      
 
      - 
        Wisp - Simple library with
        minimal footprint and straightforward API.
      
 
      - 
        db-scheduler -
        Persistent and cluster-friendly scheduler.
      
 
      - 
        easy-batch - Set up
        batch jobs with simple processing pipelines. Records are read in
        sequence from a data source, processed in pipeline and written in
        batches to a data sink.
      
 
      - 
        shedlock - Makes
        sure that your scheduled tasks are executed at most once at the same
        time. If a task is being executed on one node, it acquires a lock which
        prevents execution of the same task from another node or thread.
      
 
    
    JSON
    
      Libraries for serializing and deserializing JSON to and from Java
        objects.
    
    
      - 
        DSL-JSON - JSON
        library with advanced compile time databinding.
      
 
      - 
        Genson - Powerful and easy-to-use
        Java-to-JSON conversion library.
      
 
      - 
        Gson - Serializes objects
        to JSON and vice versa. Good performance with on-the-fly usage.
      
 
      - 
        HikariJSON -
        High-performance JSON parser, 2x faster than Jackson.
      
 
      - 
        jackson-modules-java8
        - Set of Jackson modules for Java 8 datatypes and features.
      
 
      - 
        Jackson-datatype-money
        - Open-source Jackson module to support JSON serialization and
        deserialization of JavaMoney data types.
      
 
      - 
        Jackson - Similar to
        GSON, but offers performance gains if you need to instantiate the
        library more often.
      
 
      - 
        JSON-io - Convert Java
        to JSON. Convert JSON to Java. Pretty print JSON. Java JSON serializer.
      
 
      - 
        jsoniter - Fast and flexible library
        with iterator and lazy parsing API.
      
 
      - 
        LoganSquare -
        JSON parsing and serializing library based on Jackson’s streaming API.
        Outperforms GSON & Jackson’s library.
      
 
      - 
        Moshi - Modern JSON
        library, less opinionated and uses built-in types like List and Map.
      
 
      - 
        Yasson - Binding
        layer between classes and JSON documents similar to JAXB.
      
 
      - 
        fastjson - Very fast
        processor with no additional dependencies and full data binding.
      
 
      - 
        Jolt - JSON to JSON
        transformation tool.
      
 
      - 
        JsonPath - Extract
        data from JSON using XPATH-like syntax.
      
 
      - 
        JsonSurfer -
        Streaming JsonPath processor dedicated to processing big and complicated
        JSON data.
      
 
    
    JVM and JDK
    Current implementations of the JVM/JDK.
    
      - 
        Adopt Open JDK - Community-driven
        OpenJDK builds, including both HotSpot and OpenJ9.
      
 
      - 
        Avian - JVM with JIT,
        AOT modes and iOS port.
      
 
      - 
        Corretto - No-cost,
        multiplatform, production-ready distribution of OpenJDK by Amazon.
        (GPL-2.0-only WITH Classpath-exception-2.0)
      
 
      - 
        Dragonwell8 -
        Downstream version of OpenJDK optimized for online e-commerce,
        financial, logistics applications.
      
 
      - 
        Graal - Polyglot
        embeddable JVM. (GPL-2.0-only WITH Classpath-exception-2.0)
      
 
      - 
        Liberica JDK - Built from OpenJDK,
        thoroughly tested and passed the JCK. (GPL-2.0-only WITH
        Classpath-exception-2.0)
      
 
      - 
        OpenJ9 - High
        performance, enterprise-calibre, flexibly licensed, openly-governed
        cross-platform JVM extending and augmenting the runtime technology
        components from the Eclipse OMR and OpenJDK project.
      
 
      - 
        Open JDK - Open JDK community
        home. (GPL-2.0-only WITH Classpath-exception-2.0)
      
 
      - 
        ParparVM
        - VM with non-blocking, concurrent GC for iOS. (GPL-2.0-only WITH
        Classpath-exception-2.0)
      
 
      - 
        RedHat Open JDK
        - RedHat’s OpenJDK distribution. (GPL-2.0-only WITH
        Classpath-exception-2.0)
      
 
      - 
        SAP Machine - SAP’s
        no-cost, rigorously tested and JCK-verified OpenJDK friendly fork.
        (GPL-2.0-only WITH Classpath-exception-2.0)
      
 
      - 
        Zulu -
        OpenJDK builds for Windows, Linux, and macOS. (GPL-2.0-only WITH
        Classpath-exception-2.0)
      
 
    
    Logging
    Libraries that log the behavior of an application.
    
      - 
        Apache Log4j 2 -
        Complete rewrite with a powerful plugin and configuration architecture.
      
 
      - 
        Graylog - Open-source aggregator
        suited for extended role and permission management. (GPL-3.0-only)
      
 
      - 
        Kibana - Analyzes and
        visualizes log files. Some features require payment.
      
 
      - 
        Logback - Robust logging library
        with interesting configuration options via Groovy.
      
 
      - 
        Logbook - Extensible,
        open-source library for HTTP request and response logging.
      
 
      - 
        Logstash - Tool for
        managing log files.
      
 
      - 
        p6spy - Enables logging for
        all JDBC transactions without changes to the code.
      
 
      - 
        SLF4J - Abstraction layer/simple
        logging facade.
      
 
      - 
        tinylog - Lightweight logging
        framework with static logger class.
      
 
      - 
        OpenTracing Toolbox
        - Collection of libraries that build on top of OpenTracing and provide
        extensions and plugins to existing instrumentations.
      
 
    
    Machine Learning
    
      Tools that provide specific statistical algorithms for learning from
        data.
    
    
      - 
        Apache Flink - Fast, reliable,
        large-scale data processing engine.
      
 
      - 
        Apache Mahout - Scalable
        algorithms focused on collaborative filtering, clustering and
        classification.
      
 
      - 
        DatumBox - Provides several
        algorithms and pre-trained models for natural language processing.
      
 
      - 
        Deeplearning4j - Distributed
        and multi-threaded deep learning library.
      
 
      - 
        DJL - High-level and engine-agnostic
        framework for deep learning.
      
 
      - 
        H2O
          
        - Analytics engine for statistics over big data.
       
      - 
        JSAT - Algorithms for
        pre-processing, classification, regression, and clustering with support
        for multi-threaded execution. (GPL-3.0-only)
      
 
      - 
        oj! Algorithms - High-performance
        mathematics, linear algebra and optimisation needed for data science,
        machine learning and scientific computing.
      
 
      - 
        Oryx 2 - Framework for
        building real-time, large-scale machine learning applications. Includes
        end-to-end applications for collaborative filtering, classification,
        regression, and clustering.
      
 
      - 
        Siddhi - Cloud native
        streaming and complex event processing engine.
      
 
      - 
        Smile - Statistical
        Machine Intelligence and Learning Engine provides a set of machine
        learning algorithms and a visualization library.
      
 
      - 
        Tribuo - Provides tools for
        classification, regression, clustering, model development and interfaces
        with other libraries such as scikit-learn, pytorch and TensorFlow.
      
 
      - 
        Weka - Collection of
        algorithms for data mining tasks ranging from pre-processing to
        visualization. (GPL-3.0-only)
      
 
    
    Messaging
    
      Tools that help send messages between clients to ensure protocol
        independency.
    
    
      - 
        Aeron - Efficient,
        reliable, unicast and multicast message transport.
      
 
      - 
        Apache ActiveMQ - Message
        broker that implements JMS and converts synchronous to asynchronous
        communication.
      
 
      - 
        Apache Camel - Glues together
        different transport APIs via Enterprise Integration Patterns.
      
 
      - 
        Apache Kafka - High-throughput
        distributed messaging system.
      
 
      - 
        Apache Pulsar - Distributed
        pub/sub-messaging system.
      
 
      - 
        Apache RocketMQ - Fast,
        reliable, and scalable distributed messaging platform.
      
 
      - 
        Apache Qpid - Apache Qpid makes
        messaging tools that speak AMQP and support many languages and
        platforms.
      
 
      - 
        EventBus - Simple
        publish/subscribe event bus.
      
 
      - 
        Hermes - Fast and reliable
        message broker built on top of Kafka.
      
 
      - 
        JeroMQ - Implementation
        of ZeroMQ.
      
 
      - 
        Nakadi - Provides a
        RESTful API on top of Kafka.
      
 
      - 
        RabbitMQ Java client
        - RabbitMQ client.
      
 
      - 
        Smack -
        Cross-platform XMPP client library.
      
 
      - 
        NATS client - NATS
        client.
      
 
    
    Microservice
    Tools for creating and managing microservices.
    
      - 
        ActiveRPC - Lightweight and fast
        library for complex high-load distributed applications and
        Memcached-like solutions.
      
 
      - 
        Apollo - Libraries for
        writing composable microservices.
      
 
      - 
        Armeria - Asynchronous
        RPC/REST client/server library built on top of Java 8, Netty, HTTP/2,
        Thrift and gRPC.
      
 
      - 
        consul-api - Client
        for the Consul API: a distributed, highly available and datacenter-aware
        registry/discovery service.
      
 
      - 
        Eureka - REST-based
        service registry for resilient load balancing and failover.
      
 
      - 
        Helidon - Two-style approach for
        writing microservices: Functional-reactive and as an implementation of
        MicroProfile.
      
 
      - 
        Micronaut - Modern full-stack
        framework with focus on modularity, minimal memory footprint and startup
        time.
      
 
      - 
        Nacos - Dynamic service discovery,
        configuration and service management platform for building cloud native
        applications.
      
 
      - 
        Quarkus - Kubernetes stack tailored for
        the HotSpot and Graal VM.
      
 
      - 
        Sentinel - Flow
        control component enabling reliability, resilience and monitoring for
        microservices.
      
 
    
    Miscellaneous
    Everything else.
    
      - 
        CQEngine - Ultra-fast,
        SQL-like queries on Java collections.
      
 
      - 
        Design Patterns
        - Implementation and explanation of the most common design patterns.
      
 
      - 
        FF4J - Feature Flags for
        Java.
      
 
      - 
        FizzBuzz Enterprise Edition
        - No-nonsense implementation of FizzBuzz made by serious businessmen for
        serious business purposes. (No explicit license)
      
 
      - 
        J2ObjC -
        Java-to-Objective-C translator for porting Android libraries to iOS.
      
 
      - JBake - Static website generator.
 
      - 
        JBot - Framework for
        building chatbots. (GPL-3.0-only)
      
 
      - 
        JCuda - JCuda offers Java bindings for
        CUDA and CUDA-related libraries.
      
 
      - 
        Jimfs - In-memory file
        system.
      
 
      - 
        Joda-Money - Basic
        currency and money classes and algorithms not provided by the JDK.
      
 
      - JPad - Snippet runner.
 
      - 
        jsweet - Source
        transpiler to TypeScript/JavaScript.
      
 
      - 
        Maven Wrapper -
        Analogue of Gradle Wrapper for Maven, allows building projects without
        installing maven.
      
 
      - 
        Membrane Service Proxy
        - Open-source, reverse-proxy framework.
      
 
      - 
        MinimalFTP -
        Lightweight, small and customizable FTP server.
      
 
      - 
        Modern Java - A Guide to Java 8
        - Popular Java 8 guide.
      
 
      - 
        Modernizer
        - Detect uses of legacy Java APIs.
      
 
      - 
        OctoLinker -
        Browser extension which allows to navigate through code on GitHub more
        efficiently.
      
 
      - 
        OpenRefine - Tool for working with
        messy data: cleaning, transforming, extending it with web services and
        linking it to databases.
      
 
      - 
        PipelinR - Small
        utility library for using handlers and commands with pipelines.
      
 
      - 
        Polyglot for Maven
        - Extensions for Maven 3.3.1+ that allows writing the POM model in
        dialects other than XML.
      
 
      - 
        Simple Java Mail
        - Mailing with a clean and fluent API.
      
 
      - 
        Smooks - Framework for
        fragment-based message processing. (Apache-2.0 OR LGPL-3.0-or-later)
      
 
      - 
        Togglz - Implementation of the
        Feature Toggles pattern.
      
 
      - 
        TypeTools - Tools
        for resolving generic types.
      
 
      - 
        XMLBeam - Processes
        XML by using annotations or XPath within code.
      
 
      - 
        yGuard - Obfuscation via
        renaming and shrinking.
      
 
    
    Mobile Development
    Tools for creating or managing mobile applications.
    
      - 
        Codename One - Cross-platform
        solution for writing native mobile apps. (GPL-2.0-only WITH
        Classpath-exception-2.0)
      
 
      - 
        MobileUI - Cross-platform framework
        for developing mobile apps with native UI in Java and Kotlin.
      
 
      - 
        Multi-OS Engine - Open-source,
        cross-platform engine to develop native mobile (iOS, Android, etc.)
        apps.
      
 
    
    Monitoring
    Tools that monitor applications in production.
    
      - 
        Automon - Combines
        the power of AOP with monitoring and/or logging tools.
      
 
      - 
        Failsafe Actuator
        - Out of the box monitoring of Failsafe Circuit Breaker in Spring-Boot
        environment.
      
 
      - 
        Glowroot - Open-source Java APM.
      
 
      - 
        inspectIT - Captures detailed
        run-time information via hooks that can be changed on the fly. It
        supports tracing over multiple systems via the OpenTracing API and can
        correlate the data with end user monitoring.
      
 
      - 
        Instrumental
          
        - Real-time Java application performance monitoring. A commercial
        service with free development accounts.
       
      - 
        JavaMelody -
        Performance monitoring and profiling.
      
 
      - 
        Jaeger client
        - Jaeger client.
      
 
      - 
        jmxtrans - Connect to
        multiple JVMs and query them for their attributes via JMX. Its query
        language is based on JSON, which allows non-Java programmers to access
        the JVM attributes. Supports different output writes, including
        Graphite, Ganglia, and StatsD.
      
 
      - Jolokia - JMX over REST.
 
      - 
        Metrics - Expose
        metrics via JMX or HTTP and send them to a database.
      
 
      - 
        Datadog
          
        - Modern monitoring & analytics.
       
      - 
        nudge4j -
        Remote developer console from the browser for Java 8 via bytecode
        injection.
      
 
      - 
        Pinpoint - Open-source
        APM tool.
      
 
      - 
        Prometheus -
        Provides a multi-dimensional data model, DSL, autonomous server nodes
        and much more.
      
 
      - 
        SPM
          
        - Performance monitor with distributing transaction tracing for JVM
        apps.
       
      - 
        Stagemonitor
        - Open-source performance monitoring and transaction tracing for JVM
        apps.
      
 
      - 
        Sysmon - Lightweight
        platform monitoring tool for Java VMs.
      
 
      - 
        zipkin - Distributed tracing system
        which gathers timing data needed to troubleshoot latency problems in
        microservice architectures.
      
 
    
    Native
    For working with platform-specific native libraries.
    
      - 
        Aparapi - Converts
        bytecode to OpenCL which allows execution on GPUs.
      
 
      - 
        JavaCPP - Provides
        efficient and easy access to native C++.
      
 
      - 
        JNA - Work with
        native libraries without writing JNI. Also provides interfaces to common
        system libraries.
      
 
      - 
        JNR - Work with native
        libraries without writing JNI. Also provides interfaces to common system
        libraries. Same goals as JNA, but faster, and serves as the basis for
        the upcoming
        Project Panama.
      
 
    
    Natural Language Processing
    Libraries that specialize in processing text.
    
      - 
        CogCompNLP -
        Provides common annotators for plain text input. (Research and Academic
        Use License)
      
 
      - 
        CoreNLP -
        Provides a set of fundamental tools for tasks like tagging, named entity
        recognition, and sentiment analysis. (GPL-3.0-or-later)
      
 
      - 
        DKPro - Collection of reusable NLP
        tools for linguistic pre-processing, machine learning, lexical
        resources, etc.
      
 
      - 
        LingPipe - Toolkit for tasks
        ranging from POS tagging to sentiment analysis.
      
 
    
    Networking
    Libraries for building network servers.
    
      - 
        Commons-networking
        - Client for server-sent events (SSE).
      
 
      - 
        Comsat - Integrates
        standard Java web-related APIs with Quasar fibers and actors.
      
 
      - 
        Dubbo - High-performance
        RPC framework.
      
 
      - 
        Grizzly - NIO framework.
        Used as a network layer in Glassfish.
      
 
      - 
        gRPC - RPC framework
        based on protobuf and HTTP/2.
      
 
      - 
        KryoNet -
        Provides a clean and simple API for efficient TCP and UDP client/server
        network communication using NIO and Kryo.
      
 
      - 
        MINA - Abstract, event-driven
        async I/O API for network operations over TCP/IP and UDP/IP via Java
        NIO.
      
 
      - 
        Netty - Framework for building
        high-performance network applications.
      
 
      - 
        Drift - Easy-to-use,
        annotation-based library for creating Thrift clients and serializable
        types.
      
 
      - 
        ServiceTalk -
        Framework built on Netty with APIs tailored to specific protocols and
        support for multiple programming paradigms.
      
 
      - 
        sshj - Programmatically
        use SSH, SCP or SFTP.
      
 
      - 
        TLS Channel
        - Implements a ByteChannel interface over SSLEngine, enabling
        easy-to-use (socket-like) TLS.
      
 
      - 
        Undertow - Web server providing both
        blocking and non-blocking APIs based on NIO. Used as a network layer in
        WildFly. (LGPL-2.1-only)
      
 
      - 
        urnlib - Represent, parse
        and encode URNs, as in RFC 2141. (GPL-3.0-only)
      
 
    
    ORM
    APIs that handle the persistence of objects.
    
      - 
        Apache Cayenne - Provides a
        clean, static API for data access. Also includes a GUI Modeler for
        working with database mappings, and DB reverse engineering and
        generation.
      
 
      - 
        Doma - Database
        access framework that verifies and generates source code at compile time
        using annotation processing as well as native SQL templates called
        two-way SQL.
      
 
      - 
        Ebean - Provides simple and fast data
        access.
      
 
      - 
        EclipseLink -
        Supports a number of persistence standards: JPA, JAXB, JCA and SDO.
      
 
      - 
        Hibernate - Robust and widely
        used, with an active community. (LGPL-2.1-only)
      
 
      - 
        MyBatis - Couples
        objects with stored procedures or SQL statements.
      
 
      - 
        ObjectiveSql -
        ActiveRecord ORM for rapid development and convention over
        configuration.
      
 
      - 
        Permazen -
        Language-natural persistence layer.
      
 
      - 
        SimpleFlatMapper
        - Simple database and CSV mapper.
      
 
    
    PaaS
    Java platform as a service.
    
    PDF
    Tools to help with PDF files.
    
      - 
        Apache FOP - Creates
        PDFs from XSL-FO.
      
 
      - 
        Apache PDFBox - Toolbox for
        creating and manipulating PDFs.
      
 
      - 
        Dynamic Jasper - Abstraction
        layer to JasperReports. (LGPL-3.0-only)
      
 
      - 
        DynamicReports
        - Simplifies JasperReports. (LGPL-3.0-only)
      
 
      - 
        Eclipse BIRT - Report engine
        for creating PDF and other formats (DOCX, XLSX, HTML, etc) using
        Eclipse-based visual editor.
      
 
      - 
        flyingsaucer
        - XML/XHTML and CSS 2.1 renderer. (LGPL-2.1-or-later)
      
 
      - 
        iText
          
        - Creates PDF files programmatically.
       
      - 
        JasperReports
        - Complex reporting engine. (LGPL-3.0-only)
      
 
      - 
        Open HTML to PDF
        - Properly supports modern PDF standards based on flyingsaucer and
        Apache PDFBox.
      
 
      - 
        OpenPDF - Open-source
        iText fork. (LGPL-3.0-only & MPL-2.0)
      
 
      - 
        Tabula - Extracts
        tables from PDF files.
      
 
    
    
    Tools for performance analysis, profiling and benchmarking.
    
      - 
        fastThread
          
        - Analyze and visualize thread dumps with a free cloud-based upload
        interface.
       
      - 
        GCeasy
          
        - Tool to analyze and visualize GC logs. It provides a free cloud-based
        upload interface.
       
      - 
        honest-profiler
        - Low-overhead, bias-free sampling profiler.
      
 
      - 
        jHiccup - Logs and
        records platform JVM stalls.
      
 
      - 
        JITWatch -
        Analyze the JIT compiler optimisations made by the HotSpot JVM.
      
 
      - 
        JMH -
        Harness for building, running, and analysing nano/micro/milli/macro
        benchmarks written in Java and other languages targeting the JVM.
        (GPL-2.0 only WITH Classpath-exception-2.0)
      
 
      - 
        LatencyUtils
        - Utilities for latency measurement and reporting.
      
 
    
    
    
      Frameworks that are suites of multiple libraries encompassing several
        categories.
    
    Apache Commons
    
      - 
        BCEL - Byte
        Code Engineering Library - analyze, create, and manipulate Java class
        files.
      
 
      - 
        BeanUtils
        - Easy-to-use wrappers around the Java reflection and introspection
        APIs.
      
 
      - 
        BeanUtils2
        - Redesign of Commons BeanUtils.
      
 
      - 
        BSF - Bean
        Scripting Framework - interface to scripting languages, including
        JSR-223.
      
 
      - 
        Chain -
        Chain of Responsibility pattern implementation.
      
 
      - 
        ClassScan
        - Find Class interfaces, methods, fields, and annotations without
        loading.
      
 
      - 
        CLI -
        Command-line arguments parser.
      
 
      - 
        CLI2 -
        Redesign of Commons CLI.
      
 
      - 
        Codec -
        General encoding/decoding algorithms, e.g. phonetic, base64 or URL.
      
 
      - 
        Collections
        - Extends or augments the Java Collections Framework.
      
 
      - 
        Compress
        - Defines an API for working with tar, zip and bzip2 files.
      
 
      - 
        Configuration
        - Reading of configuration/preferences files in various formats.
      
 
      - 
        Convert
        - Commons-Convert aims to provide a single library dedicated to the task
        of converting an object of one type to another.
      
 
      - 
        CSV -
        Component for reading and writing comma separated value files.
      
 
      - 
        Daemon -
        Alternative invocation mechanism for unix-daemon-like java code.
      
 
      - 
        DBCP -
        Database connection pooling services.
      
 
      - 
        DbUtils
        - JDBC helper library.
      
 
      - 
        Digester
        - XML-to-Java-object mapping utility.
      
 
      - 
        Email -
        Library for sending e-mail from Java.
      
 
      - 
        Exec - API
        for dealing with external process execution and environment management
        in Java.
      
 
      - 
        FileUpload
        - File upload capability for your servlets and web applications.
      
 
      - 
        Finder -
        Java library inspired by the UNIX find command.
      
 
      - 
        Flatfile
        - Java library for working with flat data structures.
      
 
      - 
        Functor
        - Function that can be manipulated as an object, or an object
        representing a single, generic function.
      
 
      - 
        Graph -
        General purpose graph APIs and algorithms.
      
 
      - 
        I18n -
        Adds the feature of localized message bundles that consist of one or
        many localized texts that belong together.
      
 
      - 
        Id - Id is a
        component used to generate identifiers.
      
 
      - 
        Imaging
        - Image library.
      
 
      - 
        IO -
        Collection of I/O utilities.
      
 
      - 
        Javaflow
        - Continuation implementation to capture the state of the application.
      
 
      - 
        JCI - Java
        Compiler Interface.
      
 
      - 
        JCS - Java
        Caching System.
      
 
      - 
        Jelly -
        XML based scripting and processing engine.
      
 
      - 
        Jexl -
        Expression language which extends the Expression Language of the JSTL.
      
 
      - 
        JNet -
        JNet allows to use dynamically register url stream handlers through the
        java.net API.
      
 
      - 
        JXPath -
        Utilities for manipulating Java Beans using the XPath syntax.
      
 
      - 
        Lang -
        Provides extra functionality for classes in java.lang.
      
 
      - 
        Logging
        - Wrapper around a variety of logging API implementations.
      
 
      - 
        Math -
        Lightweight, self-contained mathematics and statistics components.
      
 
      - 
        Monitoring
        - Monitoring aims to provide a simple but extensible monitoring solution
        for Java applications.
      
 
      - 
        Nabla -
        Nabla provides automatic differentiation classes that can generate
        derivative of any function implemented in the Java language.
      
 
      - 
        Net -
        Collection of network utilities and protocol implementations.
      
 
      - 
        OGNL -
        Object-graph navigation language.
      
 
      - 
        OpenPGP
        - Interface to signing and verifying data using OpenPGP.
      
 
      - 
        Performance
        - Small framework for microbenchmark clients, with implementations for
        Commons DBCP and Pool.
      
 
      - 
        Pipeline
        - Provides a set of pipeline utilities designed around work queues that
        run in parallel to sequentially process data objects.
      
 
      - 
        Pool -
        Generic object pooling component.
      
 
      - 
        Proxy -
        Library for creating dynamic proxies.
      
 
      - 
        RDF -
        Common implementation of RDF 1.1 that could be implemented by systems on
        the JVM.
      
 
      - 
        RNG -
        Commons Rng provides implementations of pseudo-random numbers
        generators.
      
 
      - 
        SCXML -
        Implementation of the State Chart XML specification aimed at creating
        and maintaining a Java SCXML engine.
      
 
      - 
        Validator
        - Framework to define validators and validation rules in an xml file.
      
 
      - 
        VFS -
        Virtual File System component for treating files, FTP, SMB, ZIP and such
        like as a single logical file system.
      
 
      - 
        Weaver -
        Provides an easy way to enhance (weave) compiled bytecode.
      
 
    
    Other
    
      - 
        CUBA Platform - High-level
        framework for developing enterprise applications with a rich web
        interface, based on Spring, EclipseLink and Vaadin.
      
 
      - 
        Light-4J - Fast,
        lightweight and productive microservices framework with built-in
        security.
      
 
      - 
        Orienteer -
        Open-source business application platform for rapid
        configuration/development of CRM, ERP, LMS and other applications.
      
 
      - 
        Spring - Provides many
        packages for dependency injection, aspect-oriented programming,
        security, etc.
      
 
    
    Processes
    
      Libraries that help the management of operating system processes.
    
    
      - 
        ch.vorburger.exec
        - Convenient API around Apache Commons Exec.
      
 
      - 
        zt-exec -
        Provides a unified API to Apache Commons Exec and ProcessBuilder.
      
 
      - 
        zt-process-killer
        - Stops processes started from Java or the system processes via PID.
      
 
    
    Reactive libraries
    Libraries for developing reactive applications.
    
      - 
        Akka - Toolkit and runtime for building
        concurrent, distributed, fault-tolerant and event-driven applications.
      
 
      - 
        Reactive Streams
        - Provides a standard for asynchronous stream processing with
        non-blocking backpressure.
      
 
      - 
        Reactor - Library
        for building reactive fast-data applications.
      
 
      - 
        RxJava - Allows for
        composing asynchronous and event-based programs using observable
        sequences.
      
 
      - 
        vert.x - Polyglot event-driven
        application framework.
      
 
    
    REST Frameworks
    Frameworks specifically for creating RESTful services.
    
      - 
        Dropwizard -
        Opinionated framework for setting up modern web applications with Jetty,
        Jackson, Jersey and Metrics.
      
 
      - 
        Elide - Opinionated framework for JSON-
        or GraphQL-APIs based on a JPA data model.
      
 
      - 
        Jersey - JAX-RS reference
        implementation.
      
 
      - 
        Microserver -
        Convenient, extensible microservices plugin system for Spring &
        Spring Boot. With more than 30 plugins and growing, it supports both
        micro-monolith and pure microservices styles.
      
 
      - 
        Rapidoid - Simple, secure and
        extremely fast framework consisting of an embedded HTTP server, GUI
        components and dependency injection.
      
 
      - 
        rest.li - Framework
        for building robust, scalable RESTful architectures using typesafe
        bindings and asynchronous, non-blocking IO with an end-to-end developer
        workflow that promotes clean practices, uniform interface design and
        consistent data modeling.
      
 
      - 
        RESTEasy - Fully certified and
        portable implementation of the JAX-RS specification.
      
 
      - 
        RestExpress -
        Thin wrapper on the JBoss Netty HTTP stack that provides scaling and
        performance.
      
 
      - 
        Restlet Framework
        - Pioneering framework with powerful routing and filtering capabilities,
        and a unified client and server API.
      
 
      - 
        Spark - Sinatra inspired framework.
      
 
      - 
        Crnk - Implementation of the JSON API
        specification to build resource-oriented REST endpoints with sorting,
        filtering, paging, linking, object graphs, type-safety, bulk updates,
        integrations and more.
      
 
      - 
        springdoc-openapi
        - Automates the generation of API documentation using Spring Boot
        projects.
      
 
      - 
        Swagger - Standard, language-agnostic
        interface to REST APIs.
      
 
    
    Science
    
      Libraries for scientific computing, analysis and visualization.
    
    
      - 
        BioJava - Facilitates processing
        biological data by providing algorithms, file format parsers, sequencing
        and 3D visualization commonly used in bioinformatics.
      
 
      - 
        Chart-FX -
        Scientific charting library with focus on performance optimised
        real-time data visualisation at 25 Hz update rates for large data sets.
      
 
      - 
        DataMelt - Environment for
        scientific computation, data analysis and data visualization.
        (GPL-3.0-or-later)
      
 
      - 
        Erdos -
        Modular, light and easy graph framework for theoretic algorithms.
      
 
      - 
        GraphStream - Library for
        modeling and analyzing dynamic graphs.
      
 
      - 
        JFreeChart - 2D chart
        library for Swing, JavaFX and server-side applications. (LGPL-2.1-only)
      
 
      - 
        JGraphT - Graph library
        that provides mathematical graph-theory objects and algorithms.
      
 
      - 
        JGraphX - Library for
        visualizing (mainly Swing) and interacting with node-edge graphs.
      
 
      - 
        LogicNG - Library for
        creating, manipulating and solving Boolean and Pseudo-Boolean formulas.
      
 
      - 
        Mines Java Toolkit -
        Library for geophysical scientific computation, visualization and
        digital signal analysis.
      
 
      - 
        Morpheus -
        Provides a versatile two-dimensional memory efficient tabular data
        structure called a DataFrame to enable efficient in-memory analytics for
        scientific computing on the JVM.
      
 
      - 
        Orson-Charts -
        Generates a wide variety of 3D charts that can be displayed with Swing
        and JavaFX or exported to PDF, SVG, PNG and JPEG. (GPL-3.0-only)
      
 
      - 
        Tablesaw - Includes
        a data-frame, an embedded column store, and hundreds of methods to
        transform, summarize, or filter data.
      
 
      - 
        XChart - Light-weight
        library for plotting data. Many customizable chart types are available.
      
 
    
    Search
    Engines that index documents for search and analysis.
    
      - 
        Apache Lucene -
        High-performance, full-featured, cross-platform, text search engine
        library.
      
 
      - 
        Apache Solr - Enterprise
        search engine optimized for high-volume traffic.
      
 
      - 
        Elasticsearch - Distributed,
        multitenant-capable, full-text search engine with a RESTful web
        interface and schema-free JSON documents.
      
 
      - 
        Indexer4j - Simple
        and light full text indexing and searching library.
      
 
    
    Security
    
      Libraries that handle security, authentication, authorization or
        session management.
    
    
      - 
        Apache Shiro - Performs
        authentication, authorization, cryptography and session management.
      
 
      - 
        Bouncy Castle -
        All-purpose cryptographic library and JCA provider offering a wide range
        of functions, from basic helpers to PGP/SMIME operations.
      
 
      - 
        Cryptomator - Multiplatform,
        transparent, client-side encryption of files in the cloud.
        (GPL-3.0-only)
      
 
      - 
        Hdiv - Runtime application
        that repels application security risks included in the OWASP Top 10,
        including SQL injection, cross-site scripting, cross-site request
        forgery, data tampering, and brute force attacks.
      
 
      - 
        jjwt - JSON web token for
        Java and Android.
      
 
      - 
        Jwks RSA - JSON Web
        Key Set parser.
      
 
      - 
        Kalium - Binding for
        the Networking and Cryptography (NaCl) library.
      
 
      - 
        Keycloak - Integrated SSO and IDM
        for browser apps and RESTful web services.
      
 
      - 
        Keywhiz - System for
        distributing and managing secrets.
      
 
      - 
        Nbvcxz - Advanced
        password strength estimation.
      
 
      - 
        OACC - Provides permission-based
        authorization services.
      
 
      - 
        OTP-Java -
        One-time password generator library according to RFC 4226 (HOTP) and RFC
        6238 (TOTP).
      
 
      - 
        pac4j - Security engine.
      
 
      - 
        Password4j -
        User-friendly cryptographic library that supports Argon2, Bcrypt,
        Scrypt, PBKDF2 and various other cryptographic hash functions.
      
 
      - 
        SecurityBuilder
        - Fluent Builder API for JCA and JSSE classes and especially X.509
        certificates.
      
 
      - 
        SSLContext-Kickstart
        - High-level SSL context builder for configuring HTTP clients with
        SSL/TLS.
      
 
      - 
        Themis -
        Multi-platform high-level cryptographic library provides easy-to-use
        encryption for protecting sensitive data: secure messaging with forward
        secrecy, secure data storage (AES256GCM); suits for building end-to-end
        encrypted applications.
      
 
      - 
        Tink - Provides a simple
        and misuse-proof API for common cryptographic tasks.
      
 
    
    Serialization
    Libraries that handle serialization with high efficiency.
    
      - 
        FlatBuffers -
        Memory-efficient serialization library that can access serialized data
        without unpacking and parsing it.
      
 
      - 
        FST
        - JDK-compatible, high-performance object graph serialization.
      
 
      - 
        Kryo - Fast and
        efficient object graph serialization framework.
      
 
      - 
        MessagePack -
        Efficient binary serialization format.
      
 
      - 
        PHP Serializer
        - Serializing objects in the PHP serialization format.
      
 
    
    Server
    Servers specifically used to deploy applications.
    
      - 
        Apache Tomcat - Robust,
        all-round server for Servlet and JSP.
      
 
      - 
        Apache TomEE - Tomcat plus Java
        EE.
      
 
      - 
        Jetty - Provides a Web
        server and javax.servlet container, plus support for HTTP/2, WebSocket,
        OSGi, JMX, JNDI, JAAS and many other integrations.
      
 
      - 
        nanohttpd - Tiny,
        easily embeddable HTTP server.
      
 
      - 
        WildFly - Formerly known as JBoss
        and developed by Red Hat with extensive Java EE support. (LGPL-2.1-only)
      
 
    
    Template Engine
    Tools that substitute expressions in a template.
    
      - 
        Freemarker - Library to
        generate text output (HTML web pages, e-mails, configuration files,
        source code, etc.) based on templates and changing data.
      
 
      - 
        Handlebars.java
        - Logicless and semantic Mustache templates.
      
 
      - 
        Jade4J - Implementation
        of Pug (formerly known as Jade).
      
 
      - 
        jte - Compiles to classes and
        uses an easy syntax, several features to make development easier and
        provides fast execution and a small footprint.
      
 
      - 
        Jtwig - Modular,
        configurable and fully tested template engine.
      
 
      - 
        Pebble - Inspired by Twig and
        separates itself with its inheritance feature and its easy-to-read
        syntax. It ships with built-in autoescaping for security and it includes
        integrated support for internationalization.
      
 
      - 
        Rocker - Optimized,
        memory efficient and speedy template engine producing statically typed,
        plain objects.
      
 
      - 
        StringTemplate -
        Template engine for generating source code, web pages, emails, or any
        other formatted text output.
      
 
      - 
        Thymeleaf - Aims to be a
        substitute for JSP and works for XML files.
      
 
    
    Testing
    Tools that test from model to the view.
    Asynchronous
    Tools that simplify testing asynchronous services.
    
      - 
        Awaitility - DSL
        for synchronizing asynchronous operations.
      
 
      - 
        ConcurrentUnit
        - Toolkit for testing multi-threaded and asynchronous applications.
      
 
      - 
        GreenMail - In-memory
        email server for integration testing. Supports SMTP, POP3 and IMAP
        including SSL. (GPL-2.0-only)
      
 
      - 
        Hoverfly Java
        - Native bindings for Hoverfly, a proxy which allows you to simulate
        HTTP services.
      
 
      - 
        Karate - DSL that
        combines API test-automation, mocks and performance-testing making
        testing REST/HTTP services easy.
      
 
      - 
        REST Assured
        - DSL for easy testing of REST/HTTP services.
      
 
    
    BDD
    
      Testing for the software development process that emerged from TDD and
        was heavily influenced by DDD and OOAD.
    
    
      - 
        Cucumber -
        Provides a way to describe features in a plain language which customers
        can understand.
      
 
      - 
        Cukes-REST - Collection of
        Gherkin steps for REST-service testing using Cucumber.
      
 
      - 
        J8Spec - Follows a
        Jasmine-like syntax.
      
 
      - 
        JBehave - Extensively configurable
        framework that describes stories.
      
 
      - 
        JGiven - Provides a fluent API which
        allows for simpler composition.
      
 
      - 
        Lamdba Behave
        - Aims to provide a fluent API to write tests in long and descriptive
        sentences that read like plain English.
      
 
      - 
        Serenity BDD
        - Automated Acceptance testing and reporting library that works with
        Cucumber, JBehave and JUnit to make it easier to write high quality
        executable specifications.
      
 
    
    Fixtures
    
      Everything related to the creation and handling of random data.
    
    
    Frameworks
    Provide environments to run tests for a specific use case.
    
      - 
        ArchUnit - Test library
        for specifying and asserting architecture rules.
      
 
      - 
        Apache JMeter - Functional
        testing and performance measurements.
      
 
      - 
        Arquillian - Integration and
        functional testing platform for Java EE containers.
      
 
      - 
        Citrus - Integration testing
        framework that focuses on both client- and server-side messaging.
      
 
      - 
        Gatling - Load testing tool designed
        for ease of use, maintainability and high performance.
      
 
      - 
        JUnit - Common testing
        framework.
      
 
      - 
        jqwik - Engine for property-based
        testing built on JUnit 5.
      
 
      - 
        Pact JVM -
        Consumer-driven contract testing.
      
 
      - 
        PIT - Fast mutation-testing framework
        for evaluating fault-detection abilities of existing JUnit or TestNG
        test suites.
      
 
    
    Matchers
    Libraries that provide custom matchers.
    
      - 
        AssertJ -
        Fluent assertions that improve readability.
      
 
      - 
        Hamcrest - Matchers that
        can be combined to create flexible expressions of intent.
      
 
      - 
        JSONAssert - Simplifies
        testing JSON strings.
      
 
      - 
        Truth - Google’s fluent assertion and
        proposition framework.
      
 
      - 
        XMLUnit - Simplifies
        testing for XML output.
      
 
    
    Miscellaneous
    Other stuff related to testing.
    
      - 
        junit-dataprovider
        - TestNG-like data provider/runner for JUnit.
      
 
      - 
        LogCaptor - Captures
        log entries for unit testing purposes.
      
 
      - 
        Mutability Detector
        - Reports whether instances of a given class are immutable.
      
 
      - 
        raml-tester - Tests
        if a request/response matches a given RAML definition.
      
 
      - 
        TestContainers
        - Provides throwaway instances of common databases, Selenium web
        browsers, or anything else that can run in a Docker container.
      
 
      - 
        pojo-tester - Automatically performs
        tests on basic POJO methods. (LGPL-3.0-only)
      
 
    
    Mocking
    
      Tools which mock collaborators to help testing single, isolated
        units.
    
    
      - 
        JMockit - Integration testing,
        API mocking and faking, and code coverage.
      
 
      - 
        Mockito - Mocking
        framework that lets you write tests with a clean and simple API.
      
 
      - 
        MockServer - Allows mocking of
        systems integrated with HTTPS.
      
 
      - 
        Moco - Concise web
        services for stubs and mocks.
      
 
      - 
        PowerMock - Mocks
        static methods, constructors, final classes and methods, private
        methods, and removal of static initializers.
      
 
      - 
        WireMock - Stubs and mocks web
        services.
      
 
    
    Utility
    Libraries which provide general utility functions.
    
      - 
        Arthas - Allows to
        troubleshoot production issues for applications without modifying code
        or restarting servers.
      
 
      - 
        bucket4j
        - Rate limiting library based on token-bucket algorithm.
      
 
      - 
        cactoos - Collection
        of object-oriented primitives.
      
 
      - 
        CRaSH - Provides a shell into a JVM
        that’s running CRaSH. Used by Spring Boot and others.
        (LGPL-2.1-or-later)
      
 
      - 
        Dex - Java/JavaFX tool
        capable of powerful ETL and data visualization.
      
 
      - 
        Embulk - Bulk data loader
        that helps data transfer between various databases, storages, file
        formats, and cloud services.
      
 
      - 
        fswatch
        - Micro library to watch for directory file system changes, simplifying
        java.nio.file.WatchService.
      
 
      - 
        Gephi - Cross-platform for
        visualizing and manipulating large graph networks. (GPL-3.0-only)
      
 
      - 
        Guava - Collections,
        caching, primitives support, concurrency libraries, common annotations,
        string processing, I/O, and more.
      
 
      - 
        JADE - Framework and environment for
        building and debugging multi-agent systems. (LGPL-2.0-only)
      
 
      - 
        Java Diff Utils
        - Utilities for text or data comparison and patching.
      
 
      - 
        JavaVerbalExpressions
        - Library that helps with constructing difficult regular expressions.
      
 
      - 
        JGit - Lightweight, pure
        Java library implementing the Git version control system.
      
 
      - 
        minio-java - Provides
        simple APIs to access any Amazon S3-compatible object storage server.
      
 
      - 
        Protégé - Provides an
        ontology editor and a framework to build knowledge-based systems.
      
 
      - 
        Underscore-java
        - Port of Underscore.js functions.
      
 
    
    Version Managers
    
      Utilities that help create the development shell environment and switch
        between different Java versions.
    
    
      - 
        jabba - Java Version
        Manager inspired by nvm. Supports macOS, Linux and Windows.
      
 
      - 
        jenv - Java Version Manager
        inspired by rbenv. Can configure globally or per project. Tested on
        Debian and macOS.
      
 
      - 
        SDKMan - Java Version
        Manager inspired by RVM and rbenv. Supports UNIX-based platforms and
        Windows.
      
 
    
    Web Crawling
    Libraries that analyze the content of websites.
    
      - 
        Apache Nutch - Highly extensible,
        highly scalable web crawler for production environments.
      
 
      - 
        Crawler4j - Simple
        and lightweight web crawler.
      
 
      - 
        jsoup - Scrapes, parses, manipulates and
        cleans HTML.
      
 
      - 
        StormCrawler - SDK for building
        low-latency and scalable web crawlers.
      
 
      - 
        webmagic - Scalable
        crawler with downloading, url management, content extraction and
        persistent.
      
 
    
    Web Frameworks
    
      Frameworks that handle the communication between the layers of a web
        application.
    
    
      - 
        ActiveJ - Lightweight asynchronous
        framework built from the ground up for developing high-performance web
        applications.
      
 
      - 
        Apache Tapestry -
        Component-oriented framework for creating dynamic, robust, highly
        scalable web applications.
      
 
      - 
        Apache Wicket - Component-based
        web application framework similar to Tapestry, with a stateful GUI.
      
 
      - 
        Blade - Lightweight,
        modular framework that aims to be elegant and simple.
      
 
      - 
        Bootique - Minimally opinionated
        framework for runnable apps.
      
 
      - 
        Firefly - Asynchronous
        framework for rapid development of high-performance web application.
      
 
      - 
        Jooby - Scalable, fast and modular
        micro-framework that offers multiple programming models.
      
 
      - 
        Ninja - Full-stack web
        framework.
      
 
      - 
        Pippo - Small, highly modularized,
        Sinatra-like framework.
      
 
      - 
        Play - Built on Akka, it
        provides predictable and minimal resource consumption (CPU, memory,
        threads) for highly-scalable applications in Java and Scala.
      
 
      - 
        PrimeFaces - JSF framework with
        both free and commercial/support versions and frontend components.
      
 
      - 
        Ratpack - Set of libraries that
        facilitate fast, efficient, evolvable and well-tested HTTP applications.
      
 
      - 
        Takes - Opinionated web
        framework which is built around the concepts of True Object-Oriented
        Programming and immutability.
      
 
      - 
        Vaadin - Event-driven framework that
        uses standard web components. Server-side architecture with Ajax on the
        client side.
      
 
    
    Workflow Orchestration Engines
    
      - 
        Cadence - Stateful code
        platform from Uber.
      
 
      - 
        Temporal - Microservice orchestration
        platform, forked from Cadence but gRPC based.
      
 
    
    Resources
    Awesome Lists
    Awesome lists related to the Java & JVM ecosystem.
    
    Communities
    Active discussions.
    
    Frontends
    
      Websites that provide a frontend for this list. Please note, there
        won’t be an official website. We don’t associate with a particular
        website and everybody is allowed to create one.
    
    
    Influential Books
    Books that made a big impact and are still worth reading.
    
    Podcasts and Screencasts
    Something to look at or listen to while programming.
    
    
    Active accounts to follow. Descriptions from Twitter.
    
      - 
        Adam Bien - Freelance author,
        JavaOne Rockstar speaker, consultant, Java Champion.
      
 
      - 
        Aleksey Shipilëv -
        Performance geek, benchmarking czar, concurrency bug hunter.
      
 
      - 
        Antonio Goncalves - Java
        Champion, JUG Leader, Devoxx France, Java EE 6/7, JCP, Author.
      
 
      - 
        Arun Gupta - Java Champion,
        JavaOne Rockstar, JUG Leader, Devoxx4Kids-er, VP of Developer Advocacy
        at Couchbase.
      
 
      - 
        Brian Goetz - Java Language
        Architect at Oracle.
      
 
      - 
        Bruno Borges - Product
        Manager/Java Jock at Oracle.
      
 
      - 
        Chris Richardson -
        Software architect, consultant, and serial entrepreneur, Java Champion,
        JavaOne Rock Star, *POJOs in Action- author.
      
 
      - 
        Ed Burns - Consulting Member
        of the Technical Staff at Oracle.
      
 
      - 
        Eugen Paraschiv - Author of
        the Spring Security Course.
      
 
      - 
        Heinz Kabutz - Java
        Champion, speaker, author of The Java Specialists’ Newsletter,
        concurrency performance expert.
      
 
      - 
        Holly Cummins -
        Technical Lead of IBM London’s Bluemix Garage, Java Champion, developer,
        author, JavaOne rockstar.
      
 
      - 
        James Weaver -
        Java/JavaFX/IoT developer, author and speaker.
      
 
      - 
        Java EE - Official Java EE
        Twitter account.
      
 
      - 
        Java Magazine - Official
        Java Magazine account.
      
 
      - 
        Java - Official Java Twitter
        account.
      
 
      - 
        Javin Paul - Well-known Java
        blogger.
      
 
      - 
        Josh Long - Spring Advocate
        at Pivotal, author of O’Reilly’s Cloud Native Java- and Building
        Microservices with Spring Boot, JavaOne Rock Star.
      
 
      - 
        Lukas Eder - Java Champion,
        speaker, JUG.ch co-leader, Founder and CEO Data Geekery (jOOQ).
      
 
      - 
        Mani Sarkar - Java
        champion, Polyglot, Software Crafter involved with
        @graalvm, AI/ML/DL,
        Data Science, Developer communities, speaker & blogger. Creator of
        couple of awesome lists like this one.
      
 
      - 
        Mario Fusco - RedHatter,
        JUG coordinator, frequent speaker and author.
      
 
      - 
        Mark Heckler - Pivotal
        Principal Technologist and Developer Advocate, conference speaker,
        published author, and Java Champion, focusing on Internet of Things and
        the cloud.
      
 
      - 
        Mark Reinhold - Chief
        Architect, Java Platform Group, Oracle.
      
 
      - 
        Markus Eisele - Java EE
        evangelist, Red Hat.
      
 
      - 
        Martijn Verburg - London JUG
        co-leader, speaker, author, Java Champion and much more.
      
 
      - 
        Martin Thompson - Pasty faced
        performance gangster.
      
 
      - 
        Monica Beckwith - Performance
        consultant, JavaOne Rock Star.
      
 
      - 
        OpenJDK - Official OpenJDK
        account.
      
 
      - 
        Peter Lawrey - Peter
        Lawrey, Java performance expert.
      
 
      - 
        Randy Shoup - Stitch Fix VP
        Engineering, speaker, JavaOne Rock Star.
      
 
      - 
        Reza Rahman - Java
        EE/GlassFish/WebLogic evangelist, author, speaker, open source hacker.
      
 
      - 
        Sander Mak - Java Champion,
        author.
      
 
      - 
        Simon Maple - Java Champion,
        VirtualJUG founder, LJC leader, RebelLabs author.
      
 
      - 
        Spencer Gibb - Software
        Engineer, Dad, Geek, Co-founder and Lead of Spring Cloud Core
        @pivotal.
      
 
      - 
        Stephen Colebourne - Java
        Champion, speaker.
      
 
      - 
        Trisha Gee - Java Champion
        and speaker.
      
 
      - 
        Venkat Subramaniam - Author,
        University of Houston professor, MicroSoft MVP award recipient, JavaOne
        Rock Star, Java Champion.
      
 
      - 
        Vlad Mihalcea - Java
        Champion working on Hypersistence Optimizer, database aficionado, author
        of High-Performance Java Persistence book.
      
 
    
    Websites
    Sites to read.
    
    Contributing
    Contributions are very welcome!
    
      Please have a look at the
      CONTRIBUTING
      guidelines and
      the validation tools.